home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / security / COAST / Tripwire / Patch2 < prev    next >
Encoding:
Text File  |  1992-12-10  |  36.7 KB  |  803 lines

  1.     This file contains the second official patch to Tripwire.  It
  2. contains a number of bug fixes that have been corrected since the
  3. first patch released on December 3, 1992 -- including a serious
  4. problem with the realloc() library call that made Tripwire dump core
  5. whenever 'tripwire -update' was used on some machines (specifically,
  6. those that fail to implement realloc(3) according to ANSI specs).
  7.  
  8.     Please see the ./Changelog file for a complete list of changes
  9. that were made in the patch.
  10.  
  11.     To apply this patch, make sure that the first patch has
  12. already been applied.  You can confirm this (as will the 'patch'
  13. program) by checking ./include/patchlevel.h.  You should see a line:
  14.  
  15.     #define PATCHLEVEL 2
  16.  
  17.     Then, as before, invoke the 'patch' program on this file by:
  18.  
  19.         patch -p1 < this_patch_file
  20.  
  21.     Next, type 'make' and Tripwire will be rebuilt.  You can 
  22. confirm that you are running a binary with this patch installed
  23. by typing 'tripwire -version'.  You should see:
  24.  
  25.     Tripwire version 1.0.2 (patchlevel 3)
  26.  
  27.     Copyright (c) 1992, Purdue Research Foundation
  28.         By Gene Kim, Eugene Spafford
  29.  
  30.     (You can, of course, apply the patch by hand if you do not have
  31. the "patch" program.  Many vendors supply "patch" as unsupported
  32. software.  It is also available from many archive sites; it is on
  33. ftp.uu.net in the pub.archiving directory, for instance.  Please do
  34. not ask us to mail you a copy -- a uuencoded tar file is over 100K.)
  35.  
  36.  
  37.     But, wait!  There's more exciting news below!
  38.  
  39. ===
  40.  
  41.     A Tripwire mailing list has been established.  It is an
  42. unmoderated reflector, intended to be used as a place to discuss
  43. Tripwire-related issues.  We envision this mailing list as the primary
  44. forum for discussing future enhancements, announcing new releases,
  45. solving problems (and reporting any remaining lurking bugs), and
  46. otherwise discussing issues related to Tripwire.
  47.  
  48.     To join the list, send e-mail to "tripwire-request@cs.purdue.edu".
  49. Put the word "join" as the only thing in the body of the message.
  50. To get help on using the server, including getting patches and source
  51. by e-mail, and setting a different address on the list, send a message
  52. with the word "help" as the body.
  53.  
  54.      Please send any Tripwire-related comments, complaints, musings,
  55. and suggestions to "tripwire@cs.purdue.edu".  If you are not on the
  56. list, or would rather not use the list, you can contact us directly as
  57. genek@mentor.cc.purdue.edu and spaf@cs.purdue.edu as before.
  58.  
  59.  
  60. Gene & Gene
  61. Kim  & Spafford
  62.  
  63. December 11, 1992
  64.  
  65.  
  66. diff -c tw/Changelog:1.4 tw/Changelog:1.6
  67. *** tw/Changelog:1.4    Thu Dec 10 12:01:02 1992
  68. --- tw/Changelog    Thu Dec 10 12:01:02 1992
  69. ***************
  70. *** 1,6 ****
  71. ! # $Id: Changelog,v 1.4 92/11/23 22:15:07 genek Exp $
  72.   
  73.   The following is the official list of changes between revisions:
  74.   
  75.   first official patch  :-)
  76.   1.0.1:                      Mon Nov 23 15:58:50 EST 1992
  77. --- 1,19 ----
  78. ! # $Id: Changelog,v 1.6 92/12/10 10:56:56 genek Exp $
  79.   
  80.   The following is the official list of changes between revisions:
  81. + 1.0.2:                      Thu Dec 10 05:45:48 EST 1992
  82. +     fixed @@ifhost xxx problem which dumped core.  (thanks Rich Asmuth)
  83. +     fixed realloc() problem.  (thanks Beth Elias and Joe Ramus)
  84. +     fixed -update problem which caused Tripwire to forget all about
  85. +         special files.  (thanks Joe Ramus)
  86. +     fixed Changelog.  I forgot about the Makefile fix.  (thanks Tom Orban)
  87. +     more useful error message when Tripwire can't find configuration file.
  88. +     fixed 'tripwire -update' so it adds files explicitly specified on 
  89. +         command line, but not in database.  (thanks Drew Gonczi)
  90. +     Note that this needs some work -- we'll need to have an -add
  91. +     and -delete option to make this functionally clean and preserve
  92. +     database/tw.config semantics.
  93.   
  94.   first official patch  :-)
  95.   1.0.1:                      Mon Nov 23 15:58:50 EST 1992
  96. diff -c tw/FAQ:1.2 tw/FAQ:1.4
  97. *** tw/FAQ:1.2    Thu Dec 10 12:01:03 1992
  98. --- tw/FAQ    Thu Dec 10 12:01:03 1992
  99. ***************
  100. *** 1,4 ****
  101. ! # $Id: FAQ,v 1.2 92/11/23 21:19:55 genek Exp $
  102.   
  103.   #
  104.   # FAQ for Tripwire
  105. --- 1,4 ----
  106. ! # $Id: FAQ,v 1.4 92/12/10 16:57:57 genek Exp $
  107.   
  108.   #
  109.   # FAQ for Tripwire
  110. ***************
  111. *** 62,67 ****
  112. --- 62,68 ----
  113.       Tripwire never traverses symbolic links or enters another
  114.       filesystem.  
  115.   
  116.   Q:    Is there any way I can Tripwire to print out the names of the
  117.       files as they are being scanned?  I want to know which files
  118.       Tripwire is spending all of its time crunching.
  119. ***************
  120. *** 69,74 ****
  121. --- 70,107 ----
  122.   A:    Try using 'tripwire -v'.  This wasn't documented in the first
  123.       tripwire.5 manual page.
  124.   
  125. + Q:    I added a new file to a directory already in the tw.config file.
  126. +     When I do a 'tripwire -update', the new file isn't added to the
  127. +     database!
  128. + A:     This is a feature.  When using 'tripwire -update' to update 
  129. +     existing entries, Tripwire scans your existing database and updates
  130. +     only those entries that already exist.  This makes it less likely
  131. +     to inadverdently add new files into your database unknowingly.  (The
  132. +     premise is that initializing the database was a carefully
  133. +     thought-out operation, while updates are done more casually.)
  134. +     Consider the following scenario:
  135. +     A set of tools reside in /usr/local/gnu.  You install the new
  136. +     versions of, say, the compilers.  Consequently, the Tripwire
  137. +     database entries for these files are out-of-date (time stamp and
  138. +     signatures).  By running 'tripwire -update /usr/local/gnu', you will 
  139. +     only update the entries that already exist in the database.  New
  140. +     files lurking in /usr/local/gnu will not be added, thus making
  141. +     less likely an entry being added to your database.
  142. +         The idea was to enforce continuity for entries in the
  143. +     tw.config file.  So, the /etc entry means "files that currently
  144. +     reside in /etc when I initialize the database, but not any files
  145. +     that may appear there later."  This is why 'tripwire -update'
  146. +     doesn't add new files.
  147. +     To add a new file, you'll have to specify it on the command
  148. +     line.  For instance, 'tripwire -update /usr/local/gnu/gnunew /etc/wurble'.  
  149. +     adds two new entry to your database. 
  150.   Q:    I try to initialize the database by typing 'tripwire -initialize'
  151.       but I can't find the binary.  Where is the tripwire executable?
  152.   
  153. ***************
  154. *** 80,86 ****
  155.   Gene & Gene
  156.   Kim  & Spafford
  157.   
  158. ! November 23, 1992
  159.   (genek@mentor.cc.purdue.edu)
  160.   (spaf@cs.purdue.edu)
  161.       
  162. --- 113,119 ----
  163.   Gene & Gene
  164.   Kim  & Spafford
  165.   
  166. ! December 10, 1992
  167.   (genek@mentor.cc.purdue.edu)
  168.   (spaf@cs.purdue.edu)
  169.       
  170. diff -c tw/TODO:1.1.1.1 tw/TODO:1.2
  171. *** tw/TODO:1.1.1.1    Thu Dec 10 12:01:03 1992
  172. --- tw/TODO    Thu Dec 10 12:01:03 1992
  173. ***************
  174. *** 1,4 ****
  175. ! # $Id: TODO,v 1.4 92/11/03 13:34:56 genek Exp $
  176.  
  177.   first net release
  178.   v1.0:                 Tue Nov  3 04:37:39 EST 1992
  179. --- 1,4 ----
  180. ! # $Id: TODO,v 1.2 92/12/10 10:56:59 genek Exp $
  181.   
  182.   first net release
  183.   v1.0:                 Tue Nov  3 04:37:39 EST 1992
  184. ***************
  185. *** 7,12 ****
  186. --- 7,15 ----
  187.       fix lurking bug that surfaces in ETA-10 versions
  188.       find out why malloc() sometimes fails in Cray versions
  189.   
  190. +     add -add and -delete command-line options
  191. +     database locking \
  192. +     tripwire logging / Drew Gonczi has some fascinating ideas...
  193.       regular expression handling in tw.config file
  194.       hook for tar and cpio file parsing
  195.       inclusion of complete and authorative documentation
  196. diff -c tw/include/patchlevel.h:1.2 tw/include/patchlevel.h:1.3
  197. *** tw/include/patchlevel.h:1.2    Thu Dec 10 12:01:07 1992
  198. --- tw/include/patchlevel.h    Thu Dec 10 12:01:07 1992
  199. ***************
  200. *** 1,3 ****
  201. ! /* $Id: patchlevel.h,v 1.2 92/11/23 22:24:48 genek Exp $ */
  202.   
  203. ! #define    PATCHLEVEL    2
  204. --- 1,3 ----
  205. ! /* $Id: patchlevel.h,v 1.3 92/12/07 16:07:30 genek Exp $ */
  206.   
  207. ! #define    PATCHLEVEL    3
  208. diff -c tw/include/tripwire.h:1.3 tw/include/tripwire.h:1.4
  209. *** tw/include/tripwire.h:1.3    Thu Dec 10 12:01:09 1992
  210. --- tw/include/tripwire.h    Thu Dec 10 12:01:09 1992
  211. ***************
  212. *** 1,4 ****
  213. ! /* $Id: tripwire.h,v 1.3 92/11/24 03:18:52 genek Exp $ */
  214.   
  215.   /************************************************************************
  216.    *
  217. --- 1,4 ----
  218. ! /* $Id: tripwire.h,v 1.4 92/12/07 16:07:32 genek Exp $ */
  219.   
  220.   /************************************************************************
  221.    *
  222. ***************
  223. *** 37,43 ****
  224.   
  225.   /* version information */
  226.   
  227. ! #define VERSION_NUM     "1.0.1"
  228.   #define DB_VERSION_NUM    1
  229.   
  230.   /* For signature routines prototypes: */
  231. --- 37,43 ----
  232.   
  233.   /* version information */
  234.   
  235. ! #define VERSION_NUM     "1.0.2"
  236.   #define DB_VERSION_NUM    1
  237.   
  238.   /* For signature routines prototypes: */
  239. diff -c tw/src/config.parse.c:1.3 tw/src/config.parse.c:1.5
  240. *** tw/src/config.parse.c:1.3    Thu Dec 10 12:01:16 1992
  241. --- tw/src/config.parse.c    Thu Dec 10 12:01:16 1992
  242. ***************
  243. *** 1,5 ****
  244.   #ifndef lint
  245. ! static char rcsid[] = "$Id: config.parse.c,v 1.3 92/11/23 22:15:18 genek Exp $";
  246.   #endif
  247.   
  248.   /*
  249. --- 1,5 ----
  250.   #ifndef lint
  251. ! static char rcsid[] = "$Id: config.parse.c,v 1.5 92/12/07 17:25:00 genek Exp $";
  252.   #endif
  253.   
  254.   /*
  255. ***************
  256. *** 120,126 ****
  257.       }
  258.       else if ((fpin = fopen(configfile, "r")) == NULL) {
  259.       char err[1024];
  260. !     sprintf(err, "tripwire: Couldn't open config file %s", configfile);
  261.       perror(err);
  262.       exit(1);
  263.       }
  264. --- 120,126 ----
  265.       }
  266.       else if ((fpin = fopen(configfile, "r")) == NULL) {
  267.       char err[1024];
  268. !     sprintf(err, "tripwire: Couldn't open config file '%s'", configfile);
  269.       perror(err);
  270.       exit(1);
  271.       }
  272. ***************
  273. *** 128,134 ****
  274.       err = umask(077);  /* to protect the tempfile */
  275.   
  276.       if ((fpout = fopen(tmpfilename, "w+")) == NULL) {
  277. !     perror("configfile_read: fopen()");
  278.       exit(1);
  279.       }
  280.       (void) umask(err);  /* return it to its former state */
  281. --- 128,136 ----
  282.       err = umask(077);  /* to protect the tempfile */
  283.   
  284.       if ((fpout = fopen(tmpfilename, "w+")) == NULL) {
  285. !     char s[1024];
  286. !     sprintf(s, "tripwire: Couldn't open config file '%s'", configfile);
  287. !     perror(s);
  288.       exit(1);
  289.       }
  290.       (void) umask(err);  /* return it to its former state */
  291. diff -c tw/src/config.pre.y:1.2 tw/src/config.pre.y:1.3
  292. *** tw/src/config.pre.y:1.2    Thu Dec 10 12:01:17 1992
  293. --- tw/src/config.pre.y    Thu Dec 10 12:01:17 1992
  294. ***************
  295. *** 22,28 ****
  296.   %token ESCCHAR
  297.   
  298.   %{
  299. ! /* $Id: config.pre.y,v 1.2 92/11/23 22:15:21 genek Exp $ */
  300.   
  301.   /*
  302.    * config.y
  303. --- 22,28 ----
  304.   %token ESCCHAR
  305.   
  306.   %{
  307. ! /* $Id: config.pre.y,v 1.3 92/12/07 15:59:25 genek Exp $ */
  308.   
  309.   /*
  310.    * config.y
  311. ***************
  312. *** 124,148 ****
  313.   
  314.   colines    : colines coline 
  315.           {
  316. !         /* concatenate the two terminals together */
  317. !         if ($1 == NULL) {
  318. !             $$ = (char *) malloc((unsigned) strlen($2) + 1);
  319. !             $$[0] = '\0';
  320. !         }
  321.           else {
  322. !             $$ = (char *) malloc((unsigned) 
  323. !                     (strlen($1) + strlen($2)) + 2);
  324. !             (void) strcpy($$, $1);
  325. !             (void) strcat($$, "\n");
  326. !             /* free up the left component */
  327. !             free($1);
  328.           }
  329. -         (void) strcat($$, $2);
  330. -         /* free up the right component */
  331. -         if ($2)
  332. -             free($2);
  333.           }
  334.       | 
  335.           {
  336. --- 124,153 ----
  337.   
  338.   colines    : colines coline 
  339.           {
  340. !             /* If coline is null, just pass on colines. */
  341. !             if ($2 == NULL) 
  342. !             $$ = $1;
  343.           else {
  344. !             /* concatenate the two terminals together */
  345. !             if ($1 == NULL) {
  346. !             $$ = (char *) malloc((unsigned) strlen($2) + 1);
  347. !             $$[0] = '\0';
  348. !             }
  349. !             else {
  350. !             $$ = (char *) malloc((unsigned) 
  351. !                         (strlen($1) + strlen($2)) + 2);
  352. !             (void) strcpy($$, $1);
  353. !             (void) strcat($$, "\n");
  354. !     
  355. !             /* free up the left component */
  356. !             free($1);
  357. !             }
  358. !             (void) strcat($$, $2);
  359. !     
  360. !             /* free up the right component */
  361. !             if ($2)
  362. !             free($2);
  363.           }
  364.           }
  365.       | 
  366.           {
  367. diff -c tw/src/dbase.build.c:1.4 tw/src/dbase.build.c:1.5
  368. *** tw/src/dbase.build.c:1.4    Thu Dec 10 12:01:17 1992
  369. --- tw/src/dbase.build.c    Thu Dec 10 12:01:18 1992
  370. ***************
  371. *** 1,5 ****
  372.   #ifndef lint
  373. ! static char rcsid[] = "$Id: dbase.build.c,v 1.4 92/11/24 03:18:57 genek Exp $";
  374.   #endif
  375.   
  376.   /*
  377. --- 1,5 ----
  378.   #ifndef lint
  379. ! static char rcsid[] = "$Id: dbase.build.c,v 1.5 92/12/07 15:59:27 genek Exp $";
  380.   #endif
  381.   
  382.   /*
  383. ***************
  384. *** 343,349 ****
  385.       /* descriptor for signature functions */
  386.       if ((fd = open(filename, O_RDONLY)) < 0) {
  387.       /* skip it if we had an error */
  388. !     warn_with_err("Trying to open %s for signature\n", filename);
  389.       return;
  390.       }
  391.   
  392. --- 343,349 ----
  393.       /* descriptor for signature functions */
  394.       if ((fd = open(filename, O_RDONLY)) < 0) {
  395.       /* skip it if we had an error */
  396. !     warn_with_err("Trying to open %s for signature", filename);
  397.       return;
  398.       }
  399.   
  400. diff -c tw/src/dbase.update.c:1.1.1.1 tw/src/dbase.update.c:1.2
  401. *** tw/src/dbase.update.c:1.1.1.1    Thu Dec 10 12:01:18 1992
  402. --- tw/src/dbase.update.c    Thu Dec 10 12:01:18 1992
  403. ***************
  404. *** 1,5 ****
  405.   #ifndef lint
  406. ! static char rcsid[] = "$Id: dbase.update.c,v 1.2 92/11/03 02:43:43 genek Exp $";
  407.   #endif
  408.   
  409.   /*
  410. --- 1,5 ----
  411.   #ifndef lint
  412. ! static char rcsid[] = "$Id: dbase.update.c,v 1.2 92/12/07 15:59:28 genek Exp $";
  413.   #endif
  414.   
  415.   /*
  416. ***************
  417. *** 60,65 ****
  418. --- 60,78 ----
  419.       }
  420.       /* flag if entry number match */
  421.       if (entry == flagentry) {
  422. +         int flags;
  423. +         /* exception list */
  424. +         flags = list_getflag(p_fileentry->varname, pp_list);
  425. +         /* printf("%s: %d\n", p_fileentry->varname, flags); */
  426. +         if (flags & FLAG_NOOPEN) {
  427. +             if (verbosity > 3)
  428. +             fprintf(stderr, "%s is a special file!  Skipping...\n",
  429. +                 p_fileentry->varname);
  430. +             continue;
  431. +         }
  432.           list_setflag(p_fileentry->varname, FLAG_UPDATE, pp_list);
  433.       }
  434.       }
  435. diff -c tw/src/main.c:1.3 tw/src/main.c:1.4
  436. *** tw/src/main.c:1.3    Thu Dec 10 12:01:19 1992
  437. --- tw/src/main.c    Thu Dec 10 12:01:19 1992
  438. ***************
  439. *** 1,5 ****
  440.   #ifndef lint
  441. ! static char rcsid[] = "$Id: main.c,v 1.3 92/11/24 09:52:23 genek Exp $";
  442.   #endif
  443.   
  444.   /************************************************************************
  445. --- 1,5 ----
  446.   #ifndef lint
  447. ! static char rcsid[] = "$Id: main.c,v 1.4 92/12/07 15:59:30 genek Exp $";
  448.   #endif
  449.   
  450.   /************************************************************************
  451. ***************
  452. *** 223,229 ****
  453.           }
  454.           /* exhaust the argument list */
  455.           while (pc) {
  456. !         if ((pp_updateentries = (char **) realloc(pp_updateentries, 
  457.               (numupdateentries+1) * sizeof(char *))) == NULL) {
  458.               die_with_err("main: realloc() failed!\n", NULL);
  459.           }
  460. --- 223,235 ----
  461.           }
  462.           /* exhaust the argument list */
  463.           while (pc) {
  464. !         if (pp_updateentries == NULL) {
  465. !             if ((pp_updateentries = (char **) malloc(sizeof(char *))) 
  466. !                         == NULL) {
  467. !                 die_with_err("main: malloc() failed!\n", NULL);
  468. !             }
  469. !         } else 
  470. !         if ((pp_updateentries = (char **) realloc(pp_updateentries,
  471.               (numupdateentries+1) * sizeof(char *))) == NULL) {
  472.               die_with_err("main: realloc() failed!\n", NULL);
  473.           }
  474. diff -c tw/src/preen.c:1.3 tw/src/preen.c:1.7
  475. *** tw/src/preen.c:1.3    Thu Dec 10 12:01:19 1992
  476. --- tw/src/preen.c    Thu Dec 10 12:01:20 1992
  477. ***************
  478. *** 1,5 ****
  479.   #ifndef lint
  480. ! static char rcsid[] = "$Id: preen.c,v 1.3 92/11/24 03:19:00 genek Exp $";
  481.   #endif
  482.   
  483.   /*
  484. --- 1,5 ----
  485.   #ifndef lint
  486. ! static char rcsid[] = "$Id: preen.c,v 1.7 92/12/10 10:57:27 genek Exp $";
  487.   #endif
  488.   
  489.   /*
  490. ***************
  491. *** 24,33 ****
  492.   #else
  493.   #include <strings.h>
  494.   #endif
  495. ! #ifdef __STDC__
  496. ! # include <sys/types.h>
  497. ! # include <sys/stat.h>
  498. ! #endif
  499.   #if (defined(SYSV) && (SYSV < 3))
  500.   # include <limits.h>
  501.   #endif    /* SVR2 */
  502. --- 24,31 ----
  503.   #else
  504.   #include <strings.h>
  505.   #endif
  506. ! #include <sys/types.h>
  507. ! #include <sys/stat.h>
  508.   #if (defined(SYSV) && (SYSV < 3))
  509.   # include <limits.h>
  510.   #endif    /* SVR2 */
  511. ***************
  512. *** 35,40 ****
  513. --- 33,39 ----
  514.   #include "../include/tripwire.h"
  515.   
  516.   static struct list *preenlist = NULL;
  517. + static int numentriesread = 0;        /* running count of @@contents */
  518.   
  519.   /* prototypes */
  520.   char *mktemp();
  521. ***************
  522. *** 101,106 ****
  523. --- 100,106 ----
  524.       struct list *entry_list = (struct list *) NULL;
  525.       char *entry;
  526.       int i, numskipped = 0;        /* number of entries not found */
  527. +     struct list_elem *p_fileentry;
  528.   
  529.       /* build the filelist from the preen.config file
  530.        *         it will create the linked list of files
  531. ***************
  532. *** 128,146 ****
  533.           database_update_markentries(&filelist, entrynum);
  534.   
  535.       }
  536. !     /* is there even such a file? */
  537.       else if (list_isthere(entry, &preenlist) == 0) {
  538. !         fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Skipping...\n", entry);
  539. !         numskipped++;
  540.           continue;
  541.       }
  542.       /* entry is just a regular file */
  543.       else {
  544. !         /* make sure it's in our database */
  545.           if (list_isthere(entry, &filelist) < 0) {
  546.           fprintf(stderr, "preen_update: entry `%s' not found!\n",
  547.                       entry);
  548. !         exit(1);
  549.           }
  550.           list_setflag(entry, FLAG_UPDATE, &filelist);
  551.       }
  552. --- 128,173 ----
  553.           database_update_markentries(&filelist, entrynum);
  554.   
  555.       }
  556. !     /* remember, (preenlist) holds the newly generated list of files
  557. !      * generated from the current state of the filesystems using
  558. !      * tw.config.  (filelist) holds the list of files grabbed from
  559. !      * the previously generated database.
  560. !      */
  561. !     /* is there even such an entry in our database? */
  562.       else if (list_isthere(entry, &preenlist) == 0) {
  563. !         /* this is the wrong behavior for now.  instead, we just add
  564. !          * it to database, adding new entry 
  565. !             fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Skipping...\n", entry);
  566. !          */
  567. !         char entry_ignorevec[64]; 
  568. !         char number[64];
  569. !         char ignorestring[64];
  570. !         fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Adding...\n", entry);
  571. !         sprintf(number, "%d", numentriesread);
  572. !         /* we use the default ignore-string.  XXX.  Must be definable */
  573. !         strcpy(ignorestring, defaultignore);
  574. !         ignore_configvec_to_dvec(ignorestring);
  575. !         sprintf(entry_ignorevec, "%d %s", numentriesread++, ignorestring);
  576. !         list_set(entry, number, 0, &entry_list);
  577. !         list_set(entry, entry_ignorevec, 0, &filelist);
  578. !         list_setflag(entry, FLAG_UPDATE, &filelist);
  579.           continue;
  580.       }
  581.       /* entry is just a regular file */
  582. +     /*            XXX: we'll add it with default flags */
  583.       else {
  584. !         /* we skip it the file is not in our database and 
  585. !          * make sure it's in our database 
  586. !          *             XXX: need a -delete option for this case! */
  587.           if (list_isthere(entry, &filelist) < 0) {
  588.           fprintf(stderr, "preen_update: entry `%s' not found!\n",
  589.                       entry);
  590. !         numskipped++;
  591. !         continue;
  592.           }
  593.           list_setflag(entry, FLAG_UPDATE, &filelist);
  594.       }
  595. ***************
  596. *** 148,154 ****
  597.       
  598.       /* did we skip all the files, thus a no-op? */
  599.       if (numskipped == numentries) {
  600. !         printf("Couldn't find any update entries, so database remains unchanged!\n");
  601.       exit(1);
  602.       }
  603.   
  604. --- 175,181 ----
  605.       
  606.       /* did we skip all the files, thus a no-op? */
  607.       if (numskipped == numentries) {
  608. !         printf("tripwire: couldn't find any update entries, so database remains unchanged!\n");
  609.       exit(1);
  610.       }
  611.   
  612. ***************
  613. *** 171,177 ****
  614.    * void
  615.    * preen_database_load()
  616.    *
  617. !  *    load in the old database file.
  618.    */
  619.   
  620.   static void
  621. --- 198,204 ----
  622.    * void
  623.    * preen_database_load()
  624.    *
  625. !  *    load in the old database file into the global list (filelist).
  626.    */
  627.   
  628.   static void
  629. ***************
  630. *** 209,214 ****
  631. --- 236,242 ----
  632.   
  633.       /* build table of contents */
  634.       if (strcmp(key, "@@contents") == 0) {
  635. +         numentriesread++;
  636.           continue;
  637.       }
  638.       /* skip database version */
  639. ***************
  640. *** 217,226 ****
  641. --- 245,276 ----
  642.       }
  643.       /* else it's a file */
  644.       else {
  645. +         int mode;
  646. +         char tmp1[512], tmp2[512];
  647.           /* expand any escaped characters */
  648.           filename_escape_expand(key);
  649.   
  650.           list_set(key, value, 0, &filelist);
  651. +         /* check to see if it's a special file */
  652. +         if (sscanf(value, "%s %s %o", tmp1, tmp2, &mode) != 3) {
  653. +             die_with_err("preen_database_load: sscanf() parse error!", 
  654. +                 NULL);
  655. +         }
  656. +         
  657. +         switch (mode & S_IFMT) {
  658. +           case S_IFIFO:
  659. +           case S_IFCHR:
  660. +           case S_IFDIR:
  661. +           case S_IFBLK:
  662. + #if !defined(SYSV) || (SYSV > 3)
  663. +           case S_IFSOCK:
  664. +           case S_IFLNK:
  665. + #endif
  666. +         (void) list_setflag(key, FLAG_NOOPEN, &filelist);
  667. +         }
  668.       }
  669.       }
  670.   
  671. diff -c tw/tests/tw.db_TEST:1.4 tw/tests/tw.db_TEST:1.6
  672. *** tw/tests/tw.db_TEST:1.4    Thu Dec 10 12:01:21 1992
  673. --- tw/tests/tw.db_TEST    Thu Dec 10 12:01:22 1992
  674. ***************
  675. *** 1,4 ****
  676. ! # Generated by Tripwire, version 1.0.1 on Tue Dec  1 16:25:33 1992
  677.   @@dbaseversion 1
  678.   /tmp/genek/tripwire-1.0 0 ....5P 40700 51200 12 31018 0 512 .exijy .exiiT .exijt 0 0 0 0 0 0 0 0 0 0 
  679.   /tmp/genek/tripwire-1.0/aux 0 ....5P 40700 14336 2 31018 0 512 .exijv .exiiU .exijR 0 0 0 0 0 0 0 0 0 0 
  680. --- 1,4 ----
  681. ! # Generated by Tripwire, version 1.0.2 on Thu Dec 10 12:09:04 1992
  682.   @@dbaseversion 1
  683.   /tmp/genek/tripwire-1.0 0 ....5P 40700 51200 12 31018 0 512 .exijy .exiiT .exijt 0 0 0 0 0 0 0 0 0 0 
  684.   /tmp/genek/tripwire-1.0/aux 0 ....5P 40700 14336 2 31018 0 512 .exijv .exiiU .exijR 0 0 0 0 0 0 0 0 0 0 
  685. ***************
  686. *** 12,20 ****
  687.   /tmp/genek/tripwire-1.0/README 0 ....5P 100600 45 1 4001 0 29899 .f4xQo .f4xPb .f4xPb 0 1hJM7u1BCvSO1vNVOY.pQsvT /JN0ZX/4oN.F/eMolN/ULiLU .mNB78 ...3ir 0liT2r0SY0/D.xR3Qj/FV0H1 0ooV8G0pnaG0.tR26v/EHkxa 0 0 0 
  688.   /tmp/genek/tripwire-1.0/databases 2 ../zzz 40700 51205 2 31018 0 24 .exijy .exiih .exijS 0 0 0 0 0 0 0 0 0 0 
  689.   /tmp/genek/tripwire-1.0/Ported 0 ....5P 100600 40 1 4001 0 6868 .f4xQo .f4xPa .f4xPa 0 .P2LMF1t7ocD0oergX.FAE01 0zTn8A1HWlWw/I./kZ.w8nN9 /RWqhp ...8w5 .4S1AL0CCZ5C0995XV.apPRk 1Z2HEr15TBnN0O08fq/F6YVs 0 0 0 
  690. ! /tmp/genek/tripwire-1.0/TODO 0 ....5P 100600 51208 1 31018 0 485 .exijS .exihW .exijS 0 00Zlic.7DcJx/XufDO1YrL2f .fVfVm18VhZm0KOHj11hUNoT .Q2Zsl ...Dea /Vz5tC.8.HZV1OoFX0.R295U 1EieKB0tOvXm1BGoSS0oB.p0 0 0 0 
  691. ! /tmp/genek/tripwire-1.0/Changelog 0 ....5P 100600 75 1 4001 0 7433 .f4xQp .f4xPa .f4xPa 0 0dPnHX0NjOt3./20FW0bm570 .jIe.41Nko/B/po1hX1V9jmS /LXO9n ...380 /5MqCo.jfPOv0TLkKh01uktN 1cY7Gs1/HF8K0MUp.A0EM3dB 0 0 0 
  692. ! /tmp/genek/tripwire-1.0/FAQ 0 ....5P 100600 72 1 4001 0 2683 .f4xQp .f4xPa .f4xPa 0 1wwQd21NSUkp0PMxhY0Nrg5R .HA/rf/tCFi3/pLqJY0REoea 0m4Y5i ...693 .WQ.A20r8V6K1xUVeJ1ZSC1h 0OloOh.I0hmG/cXhGb//Y84P 0 0 0 
  693.   /tmp/genek/tripwire-1.0/configs 0 ....5P 40700 4096 2 31018 0 1024 .exijw .exiiV .exijX 0 0 0 0 0 0 0 0 0 0 
  694.   /tmp/genek/tripwire-1.0/configs/conf-aix.h 0 ....5P 100600 4098 1 31018 0 985 .exijS .exihY .exijS 0 0EtLXL/9qv7m/PoBGs1kjsQv 0NrrKp0Usuda.RCHYa/V3MaS 193CRp ...2vB /iYPnJ0jofjD.ID7w30lx4Ir /XO4WS1mPj/l0xGOQ4.xc9T2 0 0 0 
  695.   /tmp/genek/tripwire-1.0/configs/conf-aux3.h 0 ....5P 100600 4107 1 31018 0 1014 .exijS .exihY .exijS 0 0sOrCj.CY2eV1.oBer/O0t3n .KngT0/juynf/L4ITG1XxQDu 0.OjHe ...8wH 1kaLvJ/B4fU9.UB/9z/EtxZs 0JcXsZ/GngLa.LNuze1CypHb 0 0 0 
  696. --- 12,20 ----
  697.   /tmp/genek/tripwire-1.0/README 0 ....5P 100600 45 1 4001 0 29899 .f4xQo .f4xPb .f4xPb 0 1hJM7u1BCvSO1vNVOY.pQsvT /JN0ZX/4oN.F/eMolN/ULiLU .mNB78 ...3ir 0liT2r0SY0/D.xR3Qj/FV0H1 0ooV8G0pnaG0.tR26v/EHkxa 0 0 0 
  698.   /tmp/genek/tripwire-1.0/databases 2 ../zzz 40700 51205 2 31018 0 24 .exijy .exiih .exijS 0 0 0 0 0 0 0 0 0 0 
  699.   /tmp/genek/tripwire-1.0/Ported 0 ....5P 100600 40 1 4001 0 6868 .f4xQo .f4xPa .f4xPa 0 .P2LMF1t7ocD0oergX.FAE01 0zTn8A1HWlWw/I./kZ.w8nN9 /RWqhp ...8w5 .4S1AL0CCZ5C0995XV.apPRk 1Z2HEr15TBnN0O08fq/F6YVs 0 0 0 
  700. ! /tmp/genek/tripwire-1.0/TODO 0 ....5P 100600 29 1 4001 0 619 .f7mQv .f7mMb .f7mMb 0 1HkofI0s95Ny1UcKpa1FyQlr 0QirNp0d1c.a/8Ops3/M3c5O 17FIcx ...Dpg /iKC.v1I0jt51XJ7Nt0e7Rhv .yIpIy/Fh2s31aNOep1295bD 0 0 0 
  701. ! /tmp/genek/tripwire-1.0/Changelog 0 ....5P 100600 11 1 4001 0 8161 .f7mQv .f7mMb .f7mMb 0 .A4Ihl/wUp7e14CMzH.IVaLs /VLKw3/Oqqbw.76.hb1V6DGq 1oerNq ...6Tg 0urmhc0DG0CJ/EPiib.HeSY0 .n9vWS1wuq70.xsSpn0WxD1S 0 0 0 
  702. ! /tmp/genek/tripwire-1.0/FAQ 0 ....5P 100600 33 1 4001 0 4164 .f7rZf .f7rY6 .f7rY6 0 /tEZOS1fIFTN14UN070FyLFc .fPwdt1Jno4L1QBeK61piufu /p529j ...3dO 15P15f1W65Ab1zfhGE1YOjMw 0WtVXi0ojnx11.9wjB.1ZP0m 0 0 0 
  703.   /tmp/genek/tripwire-1.0/configs 0 ....5P 40700 4096 2 31018 0 1024 .exijw .exiiV .exijX 0 0 0 0 0 0 0 0 0 0 
  704.   /tmp/genek/tripwire-1.0/configs/conf-aix.h 0 ....5P 100600 4098 1 31018 0 985 .exijS .exihY .exijS 0 0EtLXL/9qv7m/PoBGs1kjsQv 0NrrKp0Usuda.RCHYa/V3MaS 193CRp ...2vB /iYPnJ0jofjD.ID7w30lx4Ir /XO4WS1mPj/l0xGOQ4.xc9T2 0 0 0 
  705.   /tmp/genek/tripwire-1.0/configs/conf-aux3.h 0 ....5P 100600 4107 1 31018 0 1014 .exijS .exihY .exijS 0 0sOrCj.CY2eV1.oBer/O0t3n .KngT0/juynf/L4ITG1XxQDu 0.OjHe ...8wH 1kaLvJ/B4fU9.UB/9z/EtxZs 0JcXsZ/GngLa.LNuze1CypHb 0 0 0 
  706. ***************
  707. *** 52,60 ****
  708.   /tmp/genek/tripwire-1.0/contrib/TRIPWIRE 0 ....5P 100700 10259 1 31018 0 569 .exijY .exihg .exijY 0 1MRglJ1D5rAm/InVH0.Up6yI 1Vgsq4.qlQq/1R5zyt0jNh18 .8mN9G ...09M .Ray/x/le5jX.oj61E0CfBQV 1pk04a0yY3WQ1UHm0h.Tui/y 0 0 0 
  709.   /tmp/genek/tripwire-1.0/contrib/tripwire.chk 0 ....5P 100700 10260 1 31018 0 458 .exijY .exihg .exijY 0 .Jc8rG.LRBLZ/0KXw8/6GNs8 0US0NP/chto81XbgYk.xcZMk .cKh.y ...28b .D.0Rh/ySAnm/iOMcy1jQ2b6 09kIye1FjpNd.M7uh6/cDGL0 0 0 0 
  710.   /tmp/genek/tripwire-1.0/include 0 ....5P 40700 14349 2 31018 0 512 .exijx .exiih .exija 0 0 0 0 0 0 0 0 0 0 
  711. ! /tmp/genek/tripwire-1.0/include/patchlevel.h 0 ....5P 100600 46 1 4001 0 82 .f4xQu .f4xPb .f4xPb 0 17C7eU.jJXZW0hic6k1d60Vn .Bq19K05ryrL/3SZVQ1Jmoou 0sWHig ...95l .m2lYc1P5h8o18Kw8c0OSsrF .LTAy/0clgrA0gMgli0Ft.8K 0 0 0 
  712.   /tmp/genek/tripwire-1.0/include/list.h 0 ....5P 100600 14383 1 31018 0 1541 .exijZ .exihi .exijZ 0 /fF4He0M2dMI/3TqcG.M17mC 1g3hMU1umN62.ZzT.u.qlaYz /LVjrG ...1YI /qxa4w0j5lD11KtVnQ1HCwHL 1H3cIy1BDI6S1byWLz1oguWX 0 0 0 
  713. ! /tmp/genek/tripwire-1.0/include/tripwire.h 0 ....5P 100600 47 1 4001 0 7247 .f4xQv .f4xPb .f4xPb 0 /0XyXQ1kMiTu.EM0Ty1nNa4I 1nAvT/.pdCPV.w2zn9/6HHi. ./Dh61 ...5yb 0ShulT/gYw5A/j61Nk0fl85W .rgZWR0M/QEE0PNj7r1h2Ubr 0 0 0 
  714.   /tmp/genek/tripwire-1.0/include/sigs.h 0 ....5P 100600 14385 1 31018 0 613 .exija .exihi .exija 0 /hAfN..MjMmK.NVFb81dGnTF 1r91TP/z3oZc.9voWX1.eNep .EHxxi ...BqE .nOHS/0SOUgn.LUtCg.NweQw 1kJL621DCHJd0szgo5/mrU7m 0 0 0 
  715.   /tmp/genek/tripwire-1.0/man 0 ....5P 40700 16384 2 31018 0 512 .exijx .exiiX .exijb 0 0 0 0 0 0 0 0 0 0 
  716.   /tmp/genek/tripwire-1.0/man/tripwire.8 0 ....5P 100600 49 1 4001 0 7683 .f4xQw .f4xPb .f4xPb 0 .GbdYr1j9FFh1dUAeE.el0Vp /wbCeq/IUng309ZkMI/0wFEp /470Xb ...CJM 01IBOf1F2MBh1tRZ1i.pVyuw .1BGSd1GWnI70.UhTO1WwClv 0 0 0 
  717. --- 52,60 ----
  718.   /tmp/genek/tripwire-1.0/contrib/TRIPWIRE 0 ....5P 100700 10259 1 31018 0 569 .exijY .exihg .exijY 0 1MRglJ1D5rAm/InVH0.Up6yI 1Vgsq4.qlQq/1R5zyt0jNh18 .8mN9G ...09M .Ray/x/le5jX.oj61E0CfBQV 1pk04a0yY3WQ1UHm0h.Tui/y 0 0 0 
  719.   /tmp/genek/tripwire-1.0/contrib/tripwire.chk 0 ....5P 100700 10260 1 31018 0 458 .exijY .exihg .exijY 0 .Jc8rG.LRBLZ/0KXw8/6GNs8 0US0NP/chto81XbgYk.xcZMk .cKh.y ...28b .D.0Rh/ySAnm/iOMcy1jQ2b6 09kIye1FjpNd.M7uh6/cDGL0 0 0 0 
  720.   /tmp/genek/tripwire-1.0/include 0 ....5P 40700 14349 2 31018 0 512 .exijx .exiih .exija 0 0 0 0 0 0 0 0 0 0 
  721. ! /tmp/genek/tripwire-1.0/include/patchlevel.h 0 ....5P 100600 30 1 4001 0 82 .f7mQw .f7mMb .f7mMb 0 /WNIXG.z1oJQ/OM/Tw.syrir .KKR9L.XMqhX0nM9o7.bZ2g5 .tNyFp ...BYz .m2lYc1P5h8o18Kw8c0OSsrF .ny5Hy1TLNKq/gXQoW1j7S78 0 0 0 
  722.   /tmp/genek/tripwire-1.0/include/list.h 0 ....5P 100600 14383 1 31018 0 1541 .exijZ .exihi .exijZ 0 /fF4He0M2dMI/3TqcG.M17mC 1g3hMU1umN62.ZzT.u.qlaYz /LVjrG ...1YI /qxa4w0j5lD11KtVnQ1HCwHL 1H3cIy1BDI6S1byWLz1oguWX 0 0 0 
  723. ! /tmp/genek/tripwire-1.0/include/tripwire.h 0 ....5P 100600 31 1 4001 0 7247 .f7mQw .f7mMb .f7mMb 0 130uuH.pBPsr1fi8Bw1Oy4zW /3n4zH0ahtlS.FgPZj0SXMPp 12zDdY ...D2m 1Xn/BT0ijD2q.skelq/m2jJT /Pj2Bz0Yattj/ZwrEJ.B2zSp 0 0 0 
  724.   /tmp/genek/tripwire-1.0/include/sigs.h 0 ....5P 100600 14385 1 31018 0 613 .exija .exihi .exija 0 /hAfN..MjMmK.NVFb81dGnTF 1r91TP/z3oZc.9voWX1.eNep .EHxxi ...BqE .nOHS/0SOUgn.LUtCg.NweQw 1kJL621DCHJd0szgo5/mrU7m 0 0 0 
  725.   /tmp/genek/tripwire-1.0/man 0 ....5P 40700 16384 2 31018 0 512 .exijx .exiiX .exijb 0 0 0 0 0 0 0 0 0 0 
  726.   /tmp/genek/tripwire-1.0/man/tripwire.8 0 ....5P 100600 49 1 4001 0 7683 .f4xQw .f4xPb .f4xPb 0 .GbdYr1j9FFh1dUAeE.el0Vp /wbCeq/IUng309ZkMI/0wFEp /470Xb ...CJM 01IBOf1F2MBh1tRZ1i.pVyuw .1BGSd1GWnI70.UhTO1WwClv 0 0 0 
  727. ***************
  728. *** 95,120 ****
  729.   /tmp/genek/tripwire-1.0/sigs/snefru/snefru.h 0 ....5P 100600 38931 1 31018 0 22 .exijn .exii3 .exijn 0 1aZg/w//cRe10kLzca1MnRe5 1DqjoB..Mcrf.5Irn00/0fJ0 /4m2gz ...9Is 1331DZ1swhQY.swblq/C.ZKh 0w3EOe/G6ViD..ftJ2.nuFb7 0 0 0 
  730.   /tmp/genek/tripwire-1.0/src 0 ....5P 40700 40967 2 31018 0 512 .exijy .exiig .exijs 0 0 0 0 0 0 0 0 0 0 
  731.   /tmp/genek/tripwire-1.0/src/config.pre.l 0 ....5P 100600 40972 1 31018 0 1728 .exijo .exiiA .exijo 0 /EfQ4n1p/kRc/60WyS.a86/Y 1HU4YA.qHu/r/6rZCF04m52Y .rAKXh ...BPV /kH3l20kl66s1AXLbG.WUwjC /cCC010WfnGu.taMJs12ZAWD 0 0 0 
  732. ! /tmp/genek/tripwire-1.0/src/config.pre.y 0 ....5P 100600 52 1 4001 0 9778 .f4xR7 .f4xPc .f4xPc 0 1xgRSz1mTbnI/HE/rz.WXDVW .zIFad/Jsn1J1fXZRw.xPdZ/ /hBEYa ...4rf .tXRCs.LRmYq0oJmA51niT8x .RNvv21K3KCx0RySsZ/mmWjl 0 0 0 
  733.   /tmp/genek/tripwire-1.0/src/config.prim.c 0 ....5P 100600 40974 1 31018 0 2728 .exijo .exiiB .exijo 0 0Tqzqh/Jfh.Y.Zb3ST/5BknF /hEISU154z2P/7qGT..Mjget 0KHH5Z ....ML /J4Gu1.7OwND/8W8xj04cnmh 1mnLxM01Xqps0s9VMK/eHC3V 0 0 0 
  734. ! /tmp/genek/tripwire-1.0/src/dbase.update.c 0 ....5P 100600 40975 1 31018 0 1599 .exijo .exiiC .exijo 0 /BGuhV04IHe6.MtHJM1kEe0r /kDEzi17fCRm0g6Mhd/a8KBI 0UaKML ...DEQ 1taIvS1Wq4UV/mTT8z1zzGKD 0QasDx0crSN80X68Nw.Ey55t 0 0 0 
  735.   /tmp/genek/tripwire-1.0/src/ignorevec.c 0 ....5P 100600 40984 1 31018 0 3545 .exijo .exiiC .exijo 0 .7O1g21g0Maz1Kz4Ow1evm90 /UDtJD.COate/6EdaG/618Ku .EGc6q .../7M /GdpxG.mIlzP1zyvs9/sETjT .KXYC1/q1k5T.tBxK8/tLuZ6 0 0 0 
  736.   /tmp/genek/tripwire-1.0/src/list.c 0 ....5P 100600 40985 1 31018 0 17081 .exijp .exiiC .exijp 0 /NUjEy/oQI50.4gsAg0.KsCI 1q/4Cz0tvvZ51I6r9z/BDVVW 1D2LWC ...Dkn 0SdmsB/xroW91WX13K.jmFeT 142JQk/H0VQ2.lRbvq1C9w87 0 0 0 
  737. ! /tmp/genek/tripwire-1.0/src/main.c 0 ....5P 100600 54 1 4001 0 10680 .f4xR9 .f4xPc .f4xPc 0 /J/LrA0vh1vu.RpI.//wC/8l ./SxoA.xisfO0e1kr10imRiB .A/ULW ...9Ta 1fJ5GS.fCFpl/nw7N21o2BFe 0JG.LY1v1KLr/gaeP.0ue/6B 0 0 0 
  738.   /tmp/genek/tripwire-1.0/src/nullsig.c 0 ....5P 100600 40987 1 31018 0 992 .exijp .exiiC .exijp 0 .x.xKv.cR/w50rFnd31PRH5s /iEGuk.bwEeV/rhvH60D57sl 14TSw6 ...04M 1w.0ID1RMk041UMtEU/uLgvX .r7P.V.CmbCm116VqK.8nbEi 0 0 0 
  739. ! /tmp/genek/tripwire-1.0/src/preen.c 0 ....5P 100600 55 1 4001 0 5381 .f4xR9 .f4xPd .f4xPd 0 /Qbqp8/eVvbF1.pdbA.Oz3aW .qdJ1F0zmJVY/qpHSL/57O0F 1dZACy ...093 .Bt4s80kaaku1BLn681SFOKj 0W1PF..4ltao1NN9OW1IM1NL 0 0 0 
  740.   /tmp/genek/tripwire-1.0/src/preen.interp.c 0 ....5P 100600 40989 1 31018 0 2618 .exijp .exiiD .exijp 0 1mNiE/.Q7PcP/v2VeW0Kjd5t 0pBkpZ/YevPi/DmzT..MmOFY .1OsXC ...8Wp /stnvH.sodId0RTHCG0FBnMd 0WxgqT./HnQK//.f4k.MH1A. 0 0 0 
  741.   /tmp/genek/tripwire-1.0/src/preen.report.c 0 ....5P 100600 40990 1 31018 0 15903 .exijp .exiiD .exijp 0 .UnE3X.0ATcD1bGGeb0UHIcP .Q00NY0yCk0K0qFY2d/w18e7 .TAfOX ...1T3 0kVqbl0OjTE5/LaLlC/JSjiE /r3y6m1VpQFU..h0B809w7U5 0 0 0 
  742.   /tmp/genek/tripwire-1.0/src/Makefile 0 ....5P 100600 50 1 4001 0 7462 .f4xRB .f4xPc .f4xPc 0 .Cl.XG1sg54G13OkE90qizHy 0b/M3V17h1ep.S9Knw0BXt4w /AFP2D ...BvJ 1fPPR/0ggDln1E/bFj0VW5hT .USQBf0vKxAB/htgsv.nzolx 0 0 0 
  743.   /tmp/genek/tripwire-1.0/src/utils.c 0 ....5P 100600 40992 1 31018 0 13384 .exijq .exiiE .exijq 0 .nm3S./tf5kL0cUsAs.9zH3d 1Lw4uh1b9YFD.nbqUf.UMZa/ 0cpm6l ...Cnm 0aSzc5.68f7m/mDT1l0Zi0sj /q8Zf40/1bHl0aM/1g/fUYXx 0 0 0 
  744. ! /tmp/genek/tripwire-1.0/src/dbase.build.c 0 ....5P 100600 53 1 4001 0 10244 .f4xRC .f4xPc .f4xPc 0 /UAr2l1hhsGL1gomEy0KjND8 019UQg1A78fY.T/WEi1Pkt9t /cZTRM ...D.i 0ke77R.k6fBa.BUFg9/pswZb 1UiSkT.MhD.1.c7ZZN/NFHgz 0 0 0 
  745.   /tmp/genek/tripwire-1.0/src/sigfetch.c 0 ....5P 100600 40994 1 31018 0 3168 .exijr .exiiG .exijr 0 /M.nXI.PpYvU.17uya/C91Ei /kXZ6P.4PnT/040sER.z09lQ .pqKZx ...Dt4 .jE1hm/8jSJq.hvRc3/zq6a8 /OqmS7.em6Bb1AJhlx/qLDUQ 0 0 0 
  746. ! /tmp/genek/tripwire-1.0/src/config.parse.c 0 ....5P 100600 51 1 4001 0 13121 .f4xRD .f4xPc .f4xPc 0 0waPv10LgxvC.aB4G7.XfjMH 1G1xlt/DFWXE1wVpF31sxgMA 1krosG ...61a ..ZG1f.5mRHV0lam4P/h/6/5 1ZzG9//UucQw.sPUUu0LQ2RW 0 0 0 
  747.   /tmp/genek/tripwire-1.0/tests 1 ../zzz 40700 32768 2 31018 0 512 .exijy .exiig .exijt 0 0 0 0 0 0 0 0 0 0 
  748.   /tmp/genek/tripwire-1.0/tests/tw.conf.test 1 ../zzz 100600 32784 1 31018 0 4659 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
  749.   /tmp/genek/tripwire-1.0/tests/Makefile 1 ../zzz 100600 56 1 4001 0 275 .f4xQe .f4xPd .f4xPd 0 0 0 0 0 0 0 0 0 0 
  750.   /tmp/genek/tripwire-1.0/tests/test1.sh 1 ../zzz 100600 32794 1 31018 0 1412 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
  751. ! /tmp/genek/tripwire-1.0/tests/tw.db_TEST 1 ../zzz 100600 57 1 4001 0 23343 .f4xU1 .f4xPd .f4xPf 0 0 0 0 0 0 0 0 0 0 
  752.   @@contents /tmp/genek/tripwire-1.0 0
  753.   @@contents /tmp/genek/tripwire-1.0/tests 1
  754.   @@contents /tmp/genek/tripwire-1.0/databases 2
  755. --- 95,120 ----
  756.   /tmp/genek/tripwire-1.0/sigs/snefru/snefru.h 0 ....5P 100600 38931 1 31018 0 22 .exijn .exii3 .exijn 0 1aZg/w//cRe10kLzca1MnRe5 1DqjoB..Mcrf.5Irn00/0fJ0 /4m2gz ...9Is 1331DZ1swhQY.swblq/C.ZKh 0w3EOe/G6ViD..ftJ2.nuFb7 0 0 0 
  757.   /tmp/genek/tripwire-1.0/src 0 ....5P 40700 40967 2 31018 0 512 .exijy .exiig .exijs 0 0 0 0 0 0 0 0 0 0 
  758.   /tmp/genek/tripwire-1.0/src/config.pre.l 0 ....5P 100600 40972 1 31018 0 1728 .exijo .exiiA .exijo 0 /EfQ4n1p/kRc/60WyS.a86/Y 1HU4YA.qHu/r/6rZCF04m52Y .rAKXh ...BPV /kH3l20kl66s1AXLbG.WUwjC /cCC010WfnGu.taMJs12ZAWD 0 0 0 
  759. ! /tmp/genek/tripwire-1.0/src/config.pre.y 0 ....5P 100600 33 1 4001 0 9902 .f7mQx .f7mMb .f7mMb 0 0PbDRB191T2R10Zoqz.LEONz /hTHrQ/2D8gx0o4AUo04L7kf /VIr.1 ...CIo /4KiSx15XnbJ/DlYiO.galk6 .UPi3M.Q7XFC0/dFVf1TBEjy 0 0 0 
  760.   /tmp/genek/tripwire-1.0/src/config.prim.c 0 ....5P 100600 40974 1 31018 0 2728 .exijo .exiiB .exijo 0 0Tqzqh/Jfh.Y.Zb3ST/5BknF /hEISU154z2P/7qGT..Mjget 0KHH5Z ....ML /J4Gu1.7OwND/8W8xj04cnmh 1mnLxM01Xqps0s9VMK/eHC3V 0 0 0 
  761. ! /tmp/genek/tripwire-1.0/src/dbase.update.c 0 ....5P 100600 35 1 4001 0 1940 .f7mQx .f7mMb .f7mMb 0 /cEyAd08fl6Z1WTNSz.cYvtu 1wQEPk0OL0II1nIic1/erhAD .KYTwt ...BBZ /9lG3T0.CW3.0AwaW50BXfkN 1wTNFj1l7Tyc0nhC4N0rrWao 0 0 0 
  762.   /tmp/genek/tripwire-1.0/src/ignorevec.c 0 ....5P 100600 40984 1 31018 0 3545 .exijo .exiiC .exijo 0 .7O1g21g0Maz1Kz4Ow1evm90 /UDtJD.COate/6EdaG/618Ku .EGc6q .../7M /GdpxG.mIlzP1zyvs9/sETjT .KXYC1/q1k5T.tBxK8/tLuZ6 0 0 0 
  763.   /tmp/genek/tripwire-1.0/src/list.c 0 ....5P 100600 40985 1 31018 0 17081 .exijp .exiiC .exijp 0 /NUjEy/oQI50.4gsAg0.KsCI 1q/4Cz0tvvZ51I6r9z/BDVVW 1D2LWC ...Dkn 0SdmsB/xroW91WX13K.jmFeT 142JQk/H0VQ2.lRbvq1C9w87 0 0 0 
  764. ! /tmp/genek/tripwire-1.0/src/main.c 0 ....5P 100600 36 1 4001 0 10874 .f7mQx .f7mMc .f7mMc 0 /Vnn/t1JSPvB1QctpP/SNrRm 1EMeM8.dJK4G1j5n9K1drQyP /h0xtF ...09h /LHRD4/lGHs6.agv3g0W4axy /lN/rR.1Yczn.0aouj0JRwmq 0 0 0 
  765.   /tmp/genek/tripwire-1.0/src/nullsig.c 0 ....5P 100600 40987 1 31018 0 992 .exijp .exiiC .exijp 0 .x.xKv.cR/w50rFnd31PRH5s /iEGuk.bwEeV/rhvH60D57sl 14TSw6 ...04M 1w.0ID1RMk041UMtEU/uLgvX .r7P.V.CmbCm116VqK.8nbEi 0 0 0 
  766. ! /tmp/genek/tripwire-1.0/src/preen.c 0 ....5P 100600 37 1 4001 0 7152 .f7mQy .f7mMc .f7mMc 0 /AntfX0qu9Q60vW7L20ky5Ux ./QX7z0jLPjY1D8B.M0bdv6t 1qwdM1 ...0rJ /YoxZ8/gcW17.rU0ty/tkjPT 0Ydr12.p9gxn/DV3lS0jdmZ9 0 0 0 
  767.   /tmp/genek/tripwire-1.0/src/preen.interp.c 0 ....5P 100600 40989 1 31018 0 2618 .exijp .exiiD .exijp 0 1mNiE/.Q7PcP/v2VeW0Kjd5t 0pBkpZ/YevPi/DmzT..MmOFY .1OsXC ...8Wp /stnvH.sodId0RTHCG0FBnMd 0WxgqT./HnQK//.f4k.MH1A. 0 0 0 
  768.   /tmp/genek/tripwire-1.0/src/preen.report.c 0 ....5P 100600 40990 1 31018 0 15903 .exijp .exiiD .exijp 0 .UnE3X.0ATcD1bGGeb0UHIcP .Q00NY0yCk0K0qFY2d/w18e7 .TAfOX ...1T3 0kVqbl0OjTE5/LaLlC/JSjiE /r3y6m1VpQFU..h0B809w7U5 0 0 0 
  769.   /tmp/genek/tripwire-1.0/src/Makefile 0 ....5P 100600 50 1 4001 0 7462 .f4xRB .f4xPc .f4xPc 0 .Cl.XG1sg54G13OkE90qizHy 0b/M3V17h1ep.S9Knw0BXt4w /AFP2D ...BvJ 1fPPR/0ggDln1E/bFj0VW5hT .USQBf0vKxAB/htgsv.nzolx 0 0 0 
  770.   /tmp/genek/tripwire-1.0/src/utils.c 0 ....5P 100600 40992 1 31018 0 13384 .exijq .exiiE .exijq 0 .nm3S./tf5kL0cUsAs.9zH3d 1Lw4uh1b9YFD.nbqUf.UMZa/ 0cpm6l ...Cnm 0aSzc5.68f7m/mDT1l0Zi0sj /q8Zf40/1bHl0aM/1g/fUYXx 0 0 0 
  771. ! /tmp/genek/tripwire-1.0/src/dbase.build.c 0 ....5P 100600 34 1 4001 0 10242 .f7mQy .f7mMb .f7mMb 0 /33A/u1qbYNC/8zN4e1lrpcF 1y4Vu8.l//Sb1pxOEA0GdZa1 0xe8oC ...D9M 02bOmB.ghiP81F3kgc.e218L .F3Gt5.cYEvQ/r7nqb0Me0Lu 0 0 0 
  772.   /tmp/genek/tripwire-1.0/src/sigfetch.c 0 ....5P 100600 40994 1 31018 0 3168 .exijr .exiiG .exijr 0 /M.nXI.PpYvU.17uya/C91Ei /kXZ6P.4PnT/040sER.z09lQ .pqKZx ...Dt4 .jE1hm/8jSJq.hvRc3/zq6a8 /OqmS7.em6Bb1AJhlx/qLDUQ 0 0 0 
  773. ! /tmp/genek/tripwire-1.0/src/config.parse.c 0 ....5P 100600 32 1 4001 0 13182 .f7mQz .f7mMb .f7mMb 0 ..2d7X1vHuEX0Z1qZG18h.QB 1Nk3YI/AJVNb1mTcNi/2wHIU /MOhPV ...1VH /W7nR9/WnJGu.WuAzx0Nyt3h /22M0e0gEXbY1yRLA.1MDJ7H 0 0 0 
  774.   /tmp/genek/tripwire-1.0/tests 1 ../zzz 40700 32768 2 31018 0 512 .exijy .exiig .exijt 0 0 0 0 0 0 0 0 0 0 
  775.   /tmp/genek/tripwire-1.0/tests/tw.conf.test 1 ../zzz 100600 32784 1 31018 0 4659 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
  776.   /tmp/genek/tripwire-1.0/tests/Makefile 1 ../zzz 100600 56 1 4001 0 275 .f4xQe .f4xPd .f4xPd 0 0 0 0 0 0 0 0 0 0 
  777.   /tmp/genek/tripwire-1.0/tests/test1.sh 1 ../zzz 100600 32794 1 31018 0 1412 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
  778. ! /tmp/genek/tripwire-1.0/tests/tw.db_TEST 1 ../zzz 100600 26 1 4001 0 23343 .f7mRO .f7mMV .f7mMV 0 0 0 0 0 0 0 0 0 0 
  779.   @@contents /tmp/genek/tripwire-1.0 0
  780.   @@contents /tmp/genek/tripwire-1.0/tests 1
  781.   @@contents /tmp/genek/tripwire-1.0/databases 2
  782.